看到之前同事寫的程式發現可能會有問題,原本的做法是把使用者上傳的圖片儲存在IIS Website實體路徑/Img,也就是說在正常部屬的行為下(實體路徑檔案全部刪除,將新的檔案程式複製到目錄下),可能會誤刪/Img目錄而導致正在被使用中的圖片都遺失,客戶絕對是跳腳
將檔案儲存路徑移至外部(不與Website同目錄),進而避免部屬時誤刪情況發生。研究發現IIS Virtial Directory可能可以達成此需求,當然我也參考了大神們的教學,設定如下
http://jengting.blogspot.com/2016/06/IIS-File-Share.html
按照上面教學的設定,在本機測試時發現問題,瀏覽器輸入正確圖片網址沒有顯示,馬上F12 Network偵錯一下,發現圖片回傳200 瀏覽器不抱錯但無法預覽(空白),response body也是空白,看起來是有讀取到實際檔案,但是無法進一步轉出,因此不信邪的故意輸入不存在的圖片名稱試試看,輸入錯誤網址會報Error 404,那感覺沒有錯啊
爬了很多文才找到解決方案,要在web.config中加入下面這段即可正常讀取,目前因為只有用到jpg,所以只有做.jpg的設定,暫時還沒有去研究多種圖片格式要如何設定
<system.webServer>
<handlers>
<add name="ImageHandler" path="*.jpg" verb="*" preCondition="integratedMode" type="System.Web.StaticFileHandler"/>
</handlers>
</system.webServer>